home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1998 July / EnigmA AMIGA RUN 29 (1998)(G.R. Edizioni)(IT)[!][issue 1998-07 & 08].iso / earkit / browser / checkhtml / install < prev    next >
Text File  |  1998-05-24  |  13KB  |  525 lines

  1. ;
  2. ; Installer script for CheckHTML
  3. ;
  4. ; Copyright © 1997-1998 Kai Hofmann
  5. ; All rights reserved!
  6. ; Released without any explicit or implicit warranty!
  7. ;
  8. ; EMail: i07m@informatik.uni-bremen.de
  9. ; WWW  : http://www.informatik.uni-bremen.de/~i07m/
  10. ;
  11. ; $VER: Install 43.7 (26.01.98)
  12. ;
  13. ; -----------------------------------------------------------------------------
  14. ; WrapGuide is copyright © 1994-1995 Udo Schuermann
  15. ; -----------------------------------------------------------------------------
  16. ;
  17. ; TODO
  18. ;
  19. ; Uninstaller
  20. ;
  21. ; -----------------------------------------------------------------------------
  22.  
  23.  (set @default-dest "sgml:")
  24.  
  25.  (if (= @installer-version 0)
  26.    (
  27.     ; old Installer
  28.     (set #prop "")
  29.    )
  30.    (
  31.     ; new Installer
  32.     (set #prop "\x1b[2p")
  33.    )
  34.  )
  35.  (set #wrapguide
  36.    (if (exists "C:WrapGuide")
  37.      1
  38.      (if (exists "C/WrapGuide")
  39.        2
  40.        0
  41.      )
  42.    )
  43.  )
  44.  
  45. ; --- Installer script strings ------------------------------------------------
  46.  
  47.  (set #i 0)
  48.  (while (<> @language (select #i "deutsch" @language)) ; LANGUAGE
  49.    (set #i (+ #i 1))
  50.  )
  51.  (if (= #i 1) ; LANGUAGE
  52.    (set #language "english")
  53.    (set #language @language)
  54.  )
  55.  
  56.  (set #i 0)
  57.  (set #language_default %10) ; LANGUAGE
  58.  (while (<> #language (select #i "deutsch" #language)) ; LANGUAGE
  59.    (
  60.     (set #language_default (shiftright #language_default 1))
  61.     (set #i (+ #i 1))
  62.    )
  63.  )
  64.  
  65.  (select #i ; LANGUAGE
  66.    ( ; deutsch
  67.     (if (= @installer-version 0)
  68.       (
  69.        (set #help_askoptions "Mit einem Installer der älter als Version 42.6 ist, kann es passieren, daß Checkbox-Knöpfe ohne Labels zu sehen sind. Das Setzen dieser Knöpfe wird ignoriert.\n\n")
  70.       )
  71.     )
  72.  
  73.     (set #choice_english      "Englisch")
  74.     (set #choice_german       "Deutsch") ; LANGUAGE
  75.     (set #prompt_copy "Wollen Sie die folgende(n) Datei(en) kopieren?")
  76.     (set #welcome_install   (cat "Willkommen zum " @appname " Installations-Werkzeug.\n"
  77.                  "Bitte geben Sie an, wie die Installation geschehen soll (basierend auf Ihrem Wissen über den Amiga Computer)."
  78.                 )
  79.     )
  80.     (set #prompt_install_docs    "Welche Art von Dokumenten wollen Sie installieren?")
  81.     (set #prompt_makedir "Das folgende Verzeichnis wurde nicht gefunden, deshalb muß es erzeugt werden:")
  82.     (set #prompt_install_asciidocs "Für welche Sprachen wollen Sie die ASCII Dokumentation installieren?")
  83.     (set #prompt_install_agdocs    "Für welche Sprachen wollen Sie die AmigaGuide® Dokumentation installieren?")
  84.     (set #prompt_wheredocs "Wo wollen Sie die Dokumentation installieren?")
  85.     (set #prompt_wheresgml "Wo wollen Sie das SGML Verzeichnis erzeugen?")
  86.     (set #prompt_startup   "Füge das SGML Assign zur Startup-Sequence hinzu.")
  87.  
  88.     (set #prompt_exists    "Eine Datei mit dem Namen 'sgml:CATALOG' existiert bereits.\nWollen Sie diese überschreiben?")
  89.     (set #help_exists       "Wenn Sie sich dazu entscheiden die CATALOG Datei zu überschreiben, könnten Sie einige öffentliche Identifier verlieren!\nAnsonsten vergleichen Sie bitte, ob einige neue öffentliche Identifier im CATALOG dieses Archives vorhanden sind.")
  90.     (set #button_append    "Anhängen")
  91.     (set #button_overwrite "Überschreiben")
  92.     (set #msg_compare       "Bitte vergessen Sie nicht die CATALOG Dateien auf neuen öffentlichen Identifiern zu vergleichen!")
  93.    )
  94.    ( ; english
  95.     (if (= @installer-version 0)
  96.       (
  97.        (set #help_askoptions "With an Installer prior to version 42.6 it can happen that you see checkbox-buttons without labels. Selecting these buttons will be ignored.\n\n")
  98.       )
  99.     )
  100.  
  101.     (set #choice_english   "English")
  102.     (set #choice_german    "German") ; LANGUAGE
  103.     (set #prompt_copy       "Do you want to copy the following file(s)?")
  104.     (set #welcome_install  (cat "Welcome to the " @appname " installation utility.\n"
  105.                 "Please indicate how the installation should proceed (based upon your knowledge of the Amiga computer)."
  106.                )
  107.     )
  108.     (set #prompt_install_docs "Which type of documents do you want to install?")
  109.     (set #prompt_makedir "The following directory was not found, so it must be created:")
  110.  
  111.     (set #prompt_install_asciidocs "For which languages do you want to install the ASCII documentation?")
  112.     (set #prompt_install_agdocs    "For which languages do you want to install the AmigaGuide® documentation?")
  113.  
  114.     (set #prompt_wheredocs "Where to install the documentation?")
  115.     (set #prompt_wheresgml "Where to create the SGML directory?")
  116.     (set #prompt_startup   "Adding SGML assign to startup-sequence.")
  117.     (set #prompt_exists    "A file 'sgml:CATALOG' already exists.\nDo you want to overwrite it?")
  118.     (set #help_exists       "If you decide to overwrite the CATALOG file, you might loose some public identifiers!\nOtherwise please verify if there are some new public identifiers within the CATALOG from this archive.")
  119.     (set #button_append    "Append")
  120.     (set #button_overwrite "Overwrite")
  121.     (set #msg_compare       "Please don't forget to compare the CATALOG files for new public identifiers!")
  122.    )
  123.  )
  124.  
  125. ; --- GetVersion procedure ----------------------------------------------------
  126.  
  127.  (procedure P_GetVersion
  128.   ; Param:
  129.   ; #file
  130.   ;
  131.   ; Results:
  132.   ; #ver #rev
  133.   ;
  134.   ; Vars used:
  135.   ; #vernum
  136.  
  137.   (set #vernum (getversion (cat #file)))
  138.   (set #ver (/ #vernum 65536))
  139.   (set #rev (- #vernum (* #ver 65536)))
  140.  )
  141.  
  142. ; --- GetOSVersion ------------------------------------------------------------
  143.  
  144.  (procedure P_GetOSVersion
  145.   ; Param:
  146.   ;
  147.   ; Results:
  148.   ; #os_ver #os_rev
  149.   ;
  150.   ; Used Vars:
  151.   ; #file #ver #rev #vernum
  152.  
  153.   (set #file "libs:version.library")
  154.   (P_GetVersion)
  155.   (set #os_ver #ver)
  156.   (set #os_rev #rev)
  157.  )
  158.  
  159. ; --- BitToLanguage -----------------------------------------------------------
  160.  
  161.  (procedure P_BitToLanguage
  162.   ; Params:
  163.   ; #langmask
  164.   ;
  165.   ; Results:
  166.   ; #langmask #lang
  167.   ;
  168.   ; Used Vars:
  169.   ; #i #bitmask
  170.  
  171.   (set #i 0)
  172.   (set #bitmask %110) ; LANGUAGE
  173.   (while (AND (< #i 25) (NOT (IN #langmask #i))) ; LANGUAGE
  174.     (
  175.      (set #bitmask (BITOR (shiftleft #bitmask 1) %001)) ; LANGUAGE
  176.      (set #i (+ #i 1))
  177.     )
  178.   )
  179.   (set #langmask (BITAND #langmask #bitmask))
  180.   (set #lang (select #i "english" "deutsch" "")) ; LANGUAGE
  181.  )
  182.  
  183. ; --- AskDocFormat ------------------------------------------------------------
  184.  
  185.  (procedure P_AskDocFormats
  186.   ; Params:
  187.   ; #prompt #docmask #defaultmask
  188.   ;
  189.   ; Results:
  190.   ; #docmask
  191.   ;
  192.   ; Used Vars:
  193.   ; #bitmask
  194.  
  195.   (set #docmask (BITAND #docmask %11))
  196.   (if #docmask
  197.     (
  198.      (set #bitmask (askoptions (prompt #prompt)
  199.                    (help #help_askoptions @askoptions-help)
  200.                    (default (BITAND #defaultmask #docmask))
  201.                    (choices
  202.                  (if (IN #docmask 0)
  203.                    (cat #prop "ASCII")
  204.                    ("")
  205.                  )
  206.                  (if (IN #docmask 1)
  207.                    (cat #prop "AmigaGuide®")
  208.                    ("")
  209.                  )
  210.                    )
  211.            )
  212.      )
  213.      (set #docmask (BITAND #docmask #bitmask))
  214.     )
  215.   )
  216.  )
  217.  
  218. ; --- AskLanguages ------------------------------------------------------------
  219.  
  220.  (procedure P_AskLanguages
  221.   ; Params:
  222.   ; #prompt #langmask #defaultmask
  223.   ;
  224.   ; Results:
  225.   ; #langmask
  226.   ;
  227.   ; Used Vars:
  228.   ; #bitmask
  229.  
  230.   (set #langmask (BITAND #langmask %11)) ; LANGUAGE
  231.   (if #langmask
  232.     (
  233.      (set #bitmask (askoptions (prompt #prompt)
  234.                    (help #help_askoptions @askoptions-help)
  235.                    (default (BITAND #defaultmask #langmask))
  236.                    (choices
  237.                  (if (IN #langmask 0)
  238.                    (cat #prop #choice_english)
  239.                    ("")
  240.                  )
  241.                  (if (IN #langmask 1)
  242.                    (cat #prop #choice_german)
  243.                    ("")
  244.                  )
  245.                  ; LANGUAGE
  246.                    )
  247.            )
  248.      )
  249.      (set #langmask (BITAND #langmask #bitmask))
  250.     )
  251.   )
  252.  )
  253.  
  254. ; --- MkDirInfo ---------------------------------------------------------------
  255.  
  256.  (procedure P_MkDirInfo
  257.   ; Params:
  258.   ; #dir #infos #dest-dir
  259.   ;
  260.   ; Results:
  261.   ;
  262.   ; Used Vars:
  263.  
  264.   (if (NOT (exists (tackon #dest-dir #dir) (noreq)))
  265.     (if #infos
  266.       (makedir (tackon #dest-dir #dir) (prompt #prompt_makedir "\n\n" (tackon #dest-dir #dir)) (help @makedir-help) (infos) (confirm "expert"))
  267.       (makedir (tackon #dest-dir #dir) (prompt #prompt_makedir "\n\n" (tackon #dest-dir #dir)) (help @makedir-help) (confirm "expert"))
  268.     )
  269.   )
  270.  )
  271.  
  272. ; --- CpFile ------------------------------------------------------------------
  273.  
  274.  (procedure P_CpFile
  275.   ; Params:
  276.   ; #dir #file #infos #dest-dir #src-dir #pattern
  277.   ;
  278.   ; Results:
  279.   ;
  280.   ; Used Vars:
  281.  
  282.   (if #pattern
  283.     (if #infos
  284.       (copyfiles (prompt #prompt_copy)
  285.          (help @copyfiles-help)
  286.          (source (tackon #src-dir #dir))
  287.          (dest (tackon #dest-dir #dir))
  288.          (pattern #file)
  289.          (files)
  290.          (infos)
  291.          (optional "nofail" "force")
  292.          (confirm "expert")
  293.       )
  294.       (copyfiles (prompt #prompt_copy)
  295.          (help @copyfiles-help)
  296.          (source (tackon #src-dir #dir))
  297.          (dest (tackon #dest-dir #dir))
  298.          (pattern #file)
  299.          (files)
  300.          (optional "nofail" "force")
  301.          (confirm "expert")
  302.       )
  303.     )
  304.     (if #infos
  305.       (copyfiles (prompt #prompt_copy)
  306.          (help @copyfiles-help)
  307.          (source (tackon (tackon #src-dir #dir) #file))
  308.          (dest (tackon #dest-dir #dir))
  309.          (files)
  310.          (infos)
  311.          (optional "nofail" "force")
  312.          (confirm "expert")
  313.       )
  314.       (copyfiles (prompt #prompt_copy)
  315.          (help @copyfiles-help)
  316.          (source (tackon (tackon #src-dir #dir) #file))
  317.          (dest (tackon #dest-dir #dir))
  318.          (files)
  319.          (optional "nofail" "force")
  320.          (confirm "expert")
  321.       )
  322.     )
  323.   )
  324.  )
  325.  
  326. ; -----------------------------------------------------------------------------
  327.  
  328.  ( ; Install
  329.   (welcome #welcome_install)
  330.   (complete 0)
  331.   (P_GetOSVersion)
  332.   (copyfiles (prompt #prompt_copy)
  333.          (help @copyfiles-help)
  334.          (source "C")
  335.          (dest "C:")
  336.          (choices
  337.         "sgmls"
  338.         "CountStrings"
  339.         "SelectString"
  340.          )
  341.          (confirm)
  342.   )
  343.   (complete 14)
  344.   (copyfiles (prompt #prompt_copy)
  345.          (help @copyfiles-help)
  346.          (source "S/CheckHTML")
  347.          (dest "S:")
  348.          (infos)
  349.          (confirm)
  350.   )
  351.   (protect "S:CheckHTML" "+s")
  352.   (complete 29)
  353.   (if (NOT (exists "sgml:" (noreq)))
  354.     (
  355.      (set #dir (askdir (prompt #prompt_wheresgml)
  356.                (help @askdir-help)
  357.                (default "System:SGML")
  358.                (newpath)
  359.            )
  360.      )
  361.      (makeassign "sgml" #dir)
  362.      (startup "SGMLS"
  363.           (prompt #prompt_startup)
  364.           (help @startup-help)
  365.           (command (cat "assign sgml: " #dir))
  366.           ;(confirm)
  367.      )
  368.     )
  369.   )
  370.   (complete 43)
  371.  
  372.   (if (exists "sgml:CATALOG")
  373.     (
  374.      (if (NOT (AND (= (run "search sgml:CATALOG ISOlat1.ent") 0) (= (run "search sgml:CATALOG HTML40.dtd") 0)))
  375.        (
  376.     (run "type SGML/CATALOG >>sgml:CATALOG")
  377.     (set #compare 0)
  378.     (if (exists "sgml:ISOlat1.sgml")
  379.       (
  380.        (delete "sgml:ISOlat1.sgml" (optional "force"))
  381.        (set #compare 1)
  382.       )
  383.     )
  384.        )
  385.        (
  386.     (if (askbool (prompt #prompt_exists)
  387.              (help #help_exists)
  388.              (default 1)
  389.         )
  390.       (
  391.        (copyfiles (prompt #prompt_copy)
  392.               (help @copyfiles-help)
  393.               (source "SGML/CATALOG")
  394.               (dest "sgml:")
  395.               (files)
  396.        )
  397.        (set #compare 0)
  398.       )
  399.       (
  400.        (set #compare 1)
  401.       )
  402.     )
  403.        )
  404.      )
  405.     )
  406.     (
  407.      (copyfiles (prompt #prompt_copy)
  408.         (help @copyfiles-help)
  409.         (source "SGML/CATALOG")
  410.         (dest "sgml:")
  411.         (files)
  412.         (confirm)
  413.      )
  414.      (set #compare 0)
  415.     )
  416.   )
  417.   (complete 57)
  418.   (copyfiles (prompt #prompt_copy)
  419.          (help @copyfiles-help)
  420.          (source "SGML")
  421.          (dest "sgml:")
  422.          (choices
  423.            "HTML.decl"
  424.            "ISOlat1.ent"
  425.            "HTMLSym.ent"
  426.            "HTMLMisc.ent"
  427.            "HTML20.dtd"
  428.            "HTML20-1.dtd"
  429.            "HTML20-s.dtd"
  430.            "HTML20-1s.dtd"
  431.            "HTML32.dtd"
  432.            "HTML40.dtd"
  433.            "HTML40frameset.dtd"
  434.            "HTML40trans.dtd"
  435.          )
  436.          (files)
  437.          (confirm)
  438.   )
  439.   (complete 71)
  440.   (set #prompt #prompt_install_docs)
  441.   (set #docmask %11)
  442.   (set #defaultmask %10)
  443.   (P_AskDocFormats)
  444.  
  445.   ; asciidocs (P_AskLanguages)
  446.   (if (IN #docmask 0)
  447.     (
  448.      (set #prompt #prompt_install_asciidocs)
  449.      (set #langmask %11)
  450.      (set #defaultmask (if (= (BITAND #language_default #langmask) 0) %01 #language_default)) ; LANGUAGE
  451.      (P_AskLanguages)
  452.      (set #install_asciidocs #langmask)
  453.     )
  454.     (set #install_asciidocs 0)
  455.   )
  456.  
  457.   ; agdocs (P_AskLanguages)
  458.   (if (IN #docmask 1)
  459.     (
  460.      (set #prompt #prompt_install_agdocs)
  461.      (set #langmask %11)
  462.      (set #defaultmask (if (= (BITAND #language_default #langmask) 0) %01 #language_default)) ; LANGUAGE
  463.      (P_AskLanguages)
  464.      (set #install_agdocs #langmask)
  465.     )
  466.     (set #install_agdocs 0)
  467.   )
  468.  
  469.   (set #src-dir "Docs")
  470.   (set #dest-dir (askdir (prompt #prompt_wheredocs)
  471.                  (help @askdir-help)
  472.                  (default "Help:")
  473.              )
  474.   )
  475.  
  476.   ; asciidocs
  477.   (if #install_asciidocs
  478.     (
  479.      (set #infos 1)
  480.      (set #pattern 0)
  481.      (set #langmask #install_asciidocs)
  482.      (while #langmask
  483.        (
  484.     (P_BitToLanguage)
  485.     (set #dir #lang)
  486.     (P_MkDirInfo)
  487.     (set #file (cat @app-name ".doc"))
  488.     (P_CpFile)
  489.        )
  490.      )
  491.     )
  492.   )
  493.   (complete 86)
  494.  
  495.   ; agdocs
  496.   (if #install_agdocs
  497.     (
  498.      (set #infos 1)
  499.      (set #pattern 0)
  500.      (set #langmask #install_agdocs)
  501.      (while #langmask
  502.        (
  503.     (P_BitToLanguage)
  504.     (set #dir #lang)
  505.     (P_MkDirInfo)
  506.     (set #file (cat @app-name ".guide"))
  507.     (P_CpFile)
  508.     (if (AND #wrapguide (< #os_ver 39))
  509.       (if (= #wrapguide 1)
  510.         (run ("stack 50000\nC:WrapGuide %s 65" (tackon (tackon #dest-dir #dir) #file)))
  511.         (run ("stack 50000\nC/WrapGuide %s 65" (tackon (tackon #dest-dir #dir) #file)))
  512.       )
  513.     )
  514.        )
  515.      )
  516.     )
  517.   )
  518.   (complete 100)
  519.   (if #compare
  520.     (
  521.      (message #msg_compare)
  522.     )
  523.   )
  524.  )
  525.